import java.util.*;
import java.util.Scanner;
public class test {
    /*给你一个下标从 0 开始的整数数组 nums 。你可以将 nums 中的元素按 任意顺序 重排（包括给定顺序）。
    令 prefix 为一个数组，它包含了 nums 重新排列后的前缀和。换句话说，
    prefix[i] 是 nums 重新排列后下标从 0 到 i 的元素之和。
    nums 的 分数 是 prefix 数组中正整数的个数。
    返回可以得到的最大分数。*/
    public static int checkorder(int[] nums) {
        Arrays.sort(nums);
        //降序
        reverse(nums);
        if(nums[0]<0)return 0;
        int result=0;
        long temp=0;
        for(int i=0;i<nums.length;i++){
            temp+=nums[i];
            if(temp>0)result++;
            else break;
        }
        return result;
    }
    public static void reverse(int[] nums) {
        int i=0;
        int j=nums.length-1;
        while(i<j) {
            int temp=nums[i];
            nums[i]=nums[j];
            nums[j]=temp;
            i++;
            j--;
        }
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int result=checkorder(nums);
        System.out.println(result);
    }
}
